package com.lxf.cloudfeign.client.productClient;

import com.alibaba.fastjson.JSONObject;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

/**
 * @author 罗兴发
 * @data 2024/12/25 10:28
 * @description：
 */
@FeignClient("cloudProduct") //请求的服务器名
@RequestMapping("/product") //nocas请求根路径
public interface ProductClient {

    /**
     * 获取商品列表
     */
    @GetMapping("/v1/getProduct")
    String getProduct();

    /**
     * 根据编码更新商品信息
     * @param json
     * @return
     */
    @PostMapping("/v1/updateProductNumByCode")
    String updateProductNumByCode(@RequestBody JSONObject json);

    /**
     * 根据商品编码获取商品详情信息
     * @return
     */
    @PostMapping("/v1/getProductByCode")
    String getProductByCode(@RequestBody JSONObject json);

    /**
     * 根据商品编码获取商品图片
     * @return
     */
    @PostMapping("/v1/getProductImgByCode")
    String getProductImgByCode(@RequestBody JSONObject json);

    /**
     * 添加任务
     * @return
     */
    @PostMapping("/v1/addTask")
    void addTask(@RequestBody JSONObject json);

    /**
     * 更新任务状态
     * @return
     */
    @PostMapping("/v1/updateTask")
    void updateTask(@RequestBody JSONObject json);

    /**
     * 删除任务
     * @return
     */
    @PostMapping("/v1/deleteTask")
    void deleteTask(@RequestBody JSONObject json);

    /**
     * 获取所有任务
     * @return
     */
    @GetMapping("/v1/getAllTask")
    List<Object> getAllTask(@RequestBody JSONObject json);

    /**
     * 根据商品编码列表获取商品详情信息列表
     * @return
     */
    @PostMapping("/v1/findAllByGoodCodeIn")
    String findAllByGoodCodeIn(@RequestBody JSONObject json);

    /**
     * 根据点赞量收藏量评论量获取商品详情信息列表
     * @return
     */
    @PostMapping("/v1/findAllByCLR")
    String findAllByCLR(@RequestBody JSONObject json);
}
